<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="../static/css/prism.css" rel="stylesheet" />
    <link href="../static/css/style.css" rel="stylesheet" />
    <title>Document</title>
</head>

<body>
    <h2>对象概述</h2>

    <p>对象（object）是 JavaScript 语言的核心概念，也是最重要的数据类型</p>
    <p><strong>对象就是一组“键值对”（key-value）的集合，是一种无序的复合数据集合</strong></p>
    <img src="./imgs/image.png" alt="">
    <p>对象的每一个键名又称为“属性”（property），它的“键值”可以是任何数据类型。</p>
    <p>如果一个属性的值为函数，通常把这个属性称为<strong>“方法”</strong>，它可以<strong>像函数那样调用</strong></p>

    <pre><code class="language-javascript">// 简单【属性-值】
var user = {
    name: 'itbaizhan',
    age: '13'
};  // 对象 user 有 name 和 age 属性

// 带有方法
var user = {
    getName: function (name) {
      return name;
    }
};  // user 有 getName 方法
user.getName("itbaizhan") // itbaizhan

// 属性的值还是一个对象，形成链式调用
var user = {
    name:"itbaizhan",
    age:13,
    container:{
        frontEnd:["Web前端","Android","iOS"],
        backEnd:["Java","Python"]
    }
}
// user 有 name 和 age 属性，以及 container 属性
// 其中，container 属性又有 frontEnd 和 backEnd 属性
user.container.frontEnd // ["Web前端","Android","iOS"]</code></pre>

    <div class="emphasize">
        <strong>注意：</strong>
        <p>不要将 js 中的对象理解为 python 中的库。</p>
        <ul>
            <li>在JavaScript中，对象是用来存储键值对的一种数据结构，可以包含属性（数据）和方法（行为）。</li>
            <li>而在Python中，库（library）是一组预先编写的代码模块，用于执行特定功能或任务。通过导入库，你可以使用其提供的功能。</li>
        </ul>
        <p>虽然JavaScript中的对象可以包含方法，类似于Python库提供的功能，但它们更像是数据和行为的集合，而不是一个独立的模块或包。</p>
        <p>总结来说，JavaScript中的对象更多是用于组织数据和代码，而Python中的库是预先编写的工具集，方便重复使用。两者在功能上的确有一些交集，但其用途和设计思路有所不同。</p>
    </div>

    <script src="../static/js/prism.min.js"></script>

    <script>
        // 简单【属性-值】
        var user = {
            name: 'itbaizhan',
            age: '13'
        };
        console.log(user.name);

        // 带有方法
        var user = {
            getName: function (name) {
                return name;
            }
        };
        console.log(user.getName("itbaizhan"));  // itbaizhan

        // 属性的值还是一个对象，形成链式调用
        var user = {
            name: "itbaizhan",
            age: 13,
            container: {
                frontEnd: ["Web前端", "Android", "iOS"],
                backEnd: ["Java", "Python"]
            }
        }
        console.log(user.container.frontEnd);
    </script>
</body>

</html>